<?php
class ExpressAction extends PublicAction{
      
    private $expressname =array(); //封装了快递名称
     
  /*   function __construct(){
        $this->expressname = $this->expressname();
    } */
     
    /*
     * 采集网页内容的方法
     */
    private function getcontent($url){
        if(function_exists("file_get_contents")){
            $file_contents = file_get_contents($url);
        }else{
            $ch = curl_init();
            $timeout = 5;
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            $file_contents = curl_exec($ch);
            curl_close($ch);
        }
        return $file_contents;
    }
    /*
     * 获取对应名称和对应传值的方法
     */
    private function expressname(){
        $result = $this->getcontent("http://www.kuaidi100.com/");
       // preg_match_all("/data\-code\=\"(?P<name>\w+)\"\>\<span\>(?P<title>.*)\<\/span>/iU",$result,$data);
        preg_match_all("/data\-code\=\"(?P<name>\w+)\"\>(?P<title>.*)\<\/a\>/iU",$result,$data);
		/*  var_dump($data);
        var_dump($data['title']);die; */
        $name = array();
        foreach($data['title'] as $k=>$v){
            $name[$v] =$data['name'][$k];
        }
       // var_dump($name);die;
        return $name;
    }
     
    /*
     * 解析object成数组的方法
     * @param $json 输入的object数组
     * return $data 数组
     */
    private function json_array($json){
        if($json){
            foreach ((array)$json as $k=>$v){
                $data[$k] = !is_string($v)?$this->json_array($v):$v;
            }
            return $data;
        }
    }
     
    /*
     * 返回$data array      快递数组
     * @param $name         快递名称
     * 支持输入的快递名称如下
     * (申通-EMS-顺丰-圆通-中通-如风达-韵达-天天-汇通-全峰-德邦-宅急送-安信达-包裹平邮-邦送物流
     * DHL快递-大田物流-德邦物流-EMS国内-EMS国际-E邮宝-凡客配送-国通快递-挂号信-共速达-国际小包
     * 汇通快递-华宇物流-汇强快递-佳吉快运-佳怡物流-加拿大邮政-快捷速递-龙邦速递-联邦快递-联昊通
     * 能达速递-如风达-瑞典邮政-全一快递-全峰快递-全日通-申通快递-顺丰快递-速尔快递-TNT快递-天天快递
     * 天地华宇-UPS快递-新邦物流-新蛋物流-香港邮政-圆通快递-韵达快递-邮政包裹-优速快递-中通快递)
     * 中铁快运-宅急送-中邮物流
     * @param $order        快递的单号
     * $data['ischeck'] ==1   已经签收
     * $data['data']        快递实时查询的状态 array
     */
    public  function getorder(){
    	$name = I('name','');
    	$order = I('order','');
    	$orderid = I('orderid','');
    	$uid = session('uid');
    	$this->checkuid($uid,U('Express/getorder',array('name'=>$name,'order'=>$order,'orderid'=>$orderid)));
    	
    	if($name&&$order){
    		$where['express_name']=array('like','%'.$name."%");
    		$keywords =M('express')->where($where)->field('express_type')->find();// $this->expressname[$name];
    		/* echo M('express')->getLastSql();die;
    		echo $keyword;die; */
    		$keywords = $keywords['express_type'];
    		$result = $this->getcontent("http://www.kuaidi100.com/query?type={$keywords}&postid={$order}&id=1&valicode=&temp=".rand(1,710));;
    		$result = json_decode($result);
    		$data = $this->json_array($result);
    		if($data){
    			//var_dump(array_reverse($data['data']));die;
    			/* $data1['flag']=0;
    			$rstr = "<table>";
    			//
    			foreach (array_reverse($data['data']) as $key){
    				$rstr .= "<tr><td>".$key['time']."</td><td>".$key['context']."</td></tr>";
    			}
    			$rstr .= "</table>";
    			//echo $rstr;die;
    			$data1['msg']=$rstr;
    			echo json_encode($data1); */
    			$data1 = array_reverse($data['data']);
    			$this->relivery =  $data1;
    			
    		}
    		else{
    			/* $data1['flag']=1;
    			$data1['msg']='暂时没有物流信息';
    			echo json_encode($data1); */
    			$this->flag = 1;
    		}
    		//echo $orderid;die;
    		$orderdetail = D('Order')->Orderdetail(array('order_id'=>$orderid));
    		//var_dump($orderdetail);die;
    		$this->orderDetail = $orderdetail;
    		//var_dump($this->orderdetail);die;
    		$this->display();
    		
    	}else{
    		$this->redirect('Membership/ordermanage');
    	}
       
    }
}
?>